import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:求斐波那契数列的第n项。(迭代实现)
 * User: WHY
 * Date: 2022-04-29
 * Time: 21:45
 */
//递归实现斐波那契数列
public class TestDemo {
    public static void func1(int[] array) {
        array = new int[]{1,2,3};
    }
    public static void func2(int[] array) {
        array[0] = 99;
    }

    public static void main(String[] args) {
        int[] array = {9,8,7};
        func1(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+ " ");
        }
        System.out.println();
        System.out.println("===========");
        func2(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+ " ");
        }
        System.out.println();


    }




    //递归求 N 的阶乘
   public static int sum(int n){
       if(n==1)
       {
           return 1;
       }
       int tmp=n*sum(n-1);
       return tmp;
   }



    public static void main8(String[] args) {
        int ret=sum(5);
        System.out.println(ret);
    }







    //递归求 1 + 2 + 3 + ... + 10
  /* public static int sum(int n){
       if(n==1){
           return n;
       }

           int tmp=n+sum(n-1);
            return tmp;

   }


    public static void main5(String[] args) {
           int ret=sum(10);
        System.out.println(ret);
    }
*/

    //逆序打印数字的每一位
   /* public static void everyNumber(int n){
        if(n<10){
            System.out.println(n);
        }else{
            System.out.println(n%10);
            everyNumber(n/10);
        }

    }


    public static void main4(String[] args) {
        everyNumber(123);
    }*/



    //递归打印数字的每一位
    //
    //作业内容
    //按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) （递归)


   /* public static void everyNumber(int n){
        if(n<10){
            System.out.println(n);
        }else{
            everyNumber(n/10);
            System.out.println(n%10);
        }

    }
//最后实现的一定是sout那一串代码




    public static void main3(String[] args) {
      everyNumber(123);*/

    }






    //返回的数字之和
    //
    //作业内容
    //写一个递归方法，输入一个非负整数，返回组成它的数字之和


  /*  public static int sumEvery(int n) {
        if (n < 10) {
            return n;
        }
        int ret = n % 10 + sumEvery(n / 10);
        return ret;
    }


    public static void main2(String[] args) {
        int ret = sumEvery(123);
        System.out.println(ret);

    }

}
*/



















   //迭代（循环）实现斐波那契数列
  /* public static int fib(int n){
      if(n<0) {
          return -1;
      }
          if(n==1||n==2){
              return 1;
          }
          int f1=1;
       int f2=1;
       int f3=-1;
       for( int i=3;i<=n;i++){
           f3=f1+f2;
           f1=f2;
           f2=f3;

       }

            return f3;

   }

*/






   /* public static int fib(int n){
        if(n==1||n==2)
        {
            return 1;
        }

            int ret=fib(n-1)+fib(n-2);
            return ret;
    }
*/






    /*public static void main1(String[] args) {
      int ret=fib(41);
        System.out.println(ret);

    }
}
*/